<?php
namespace app\admin\controller;
use think\Controller;

class BaseController extends Controller
{
    //构造方法
    // public function __construct(){
    //     //构造父类,php内置的构造方法在使用的时候必须得先构造父类，要不然在孙子级别的控制器中无法进行display和assign的。
    //     parent::__construct();
    //     //
    //     echo 'hello world';
    // }

    //ThinkPHP提供的构造方法，使用的时候不需要去构造父类。
    public function _initialize(){
        //
        //echo 'hello world!';
        //判断用户是否登录
        $id = session('id');
        if(empty($id)){
            //echo '您还没有登录！';die;
            //$this -> error('请先登录...',url('Admin/Pubctrl/login'),3);exit;
            $this->redirect('Admin/Pubctrl/login');exit;
            //编写javascript代码
            // $url = U('Public/login');
            // echo "<script>top.location.href='$url'</script>";exit;
        }

        //RBAC部分
        //dump(session('role_id')); die;
        $role_id = session('role_id');  //获取当前用户的角色id
        //dump($role_id);die;
        //$rbac_role_auths = C('RBAC_ROLE_AUTHS');   //获取全部的用户组的权限
        //dump($rbac_role_auths);die;
        //$currRoleAuth = $rbac_role_auths[$role_id]; //获取到当前用户对应的权限
        //dump($currRoleAuth);die;
        //使用常量获取当前路由中的控制器名和方法名
        //$controller = strtolower(CONTROLLER_NAME);
        //$action = strtolower(ACTION_NAME);
        //dump($action);die;

        //判断权限是否具有
        if($role_id !== 1){
            //当用户不是超级管理员的时候进行权限判断
            // if(!in_array($controller . '/' . $action,$currRoleAuth) && !in_array($controller . '/*',$currRoleAuth)){
            //     //用户没有权限
            //     $this -> error('您没有权限',U('Index/index'),3);exit;
            // }

            $this -> error('您没有权限',url('Admin/Pubctrl/login'),3);exit;
        }

        //echo session('username');die;
    }

}
